成员变量作用域

  • @public:在任何地方都能直接访问对象的成员变量;
  • @private:只能在当前类的对象方法中直接访问;
  • @protected:可以在当前类以及其子类的对象方法中直接访问;(默认情况下就是@protected)
  • @package:只要处在同一框架中,就能直接访问对象的成员变量;

成员变量还可以在类的.m文件中声明 但是 所声明的变量是私有变量。

  • @property 应用

    • 用在@interface中;
    • 用来自动生成setter和getter的声明;
    • 用@property int age;就可以替代下面的两行;
      -(int)age; // getter方法
      -(void)setAge; // setter方法
      

示例:

#import <Foundation/Foundation.h>

@interface People : NSObject
{
    int age;
    float weight;
}

@property int age; // 等价下面的注释
/*
- (int)age; // getter方法
- (void)setAge; // setter方法
*/
@end
  • @synthesize 应用

    -用在@implementation中; -用来自动生成setter和getter方法的实现; -用@synthesize age =_age;就可以替代

      - (void)setAge:(int)age
      {
      _age = age;
      }
    
      - (int)age
    {
      return _age ;
    }
    

示例:

#import "People.h"

@implementation People
@synthesize age =_age; // 等价下面注释
/*
- (void)setAge:(int)age
{
    _age = age ;
}

- (int)age
{
    return _age ;
}
*/

@end

results matching ""

    No results matching ""